import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
import plotly.express as px
size=10000
#facebook
facebook_budget=15*4
conversion=[21,57]
reach=[554,1600]
#ecommerce
ali_price=12.35
shipping=0
selling_price=(ali_price+shipping)+(ali_price+shipping)*1.4
#payment_gate
two_checkout=(selling_price+shipping)*0.035+0.35
stripe=(selling_price+shipping)*0.029+0.3
#arrays
prior_arr=np.empty(size)
posterior_arr=np.empty(size)
ecom_revenu_arr=np.empty(size)
ali_cost_arr=np.empty(size)
two_checkout_cost_arr=np.empty(size)
stripe_cost_arr=np.empty(size)
profit_two_arr=np.empty(size)
profit_stripe_arr=np.empty(size)
for i in range(size):
prior=np.random.beta(np.mean(conversion),(np.mean(reach)-np.mean(conversion)))
posterior=np.random.binomial(np.mean(reach),prior)
ecom_revenu=selling_price*posterior
ali_cost=(ali_price+shipping)*posterior
two_checkout_cost=two_checkout*posterior
stripe_cost=stripe*posterior
profit_two=ecom_revenu-ali_cost-two_checkout_cost-facebook_budget
profit_stripe=ecom_revenu-ali_cost-stripe_cost-facebook_budget
prior_arr[i]=prior
posterior_arr[i]=posterior
ecom_revenu_arr[i]=ecom_revenu
ali_cost_arr[i]=ali_cost
two_checkout_cost_arr[i]=two_checkout_cost
stripe_cost_arr[i]=stripe_cost
profit_two_arr[i]=profit_two
profit_stripe_arr[i]=profit_stripe
df=pd.DataFrame(data={"prior_arr":prior_arr,"posterior_arr":posterior_arr,"ecom_revenu_arr":ecom_revenu_arr,
"ali_cost_arr":ali_cost_arr,"two_checkout_cost_arr":two_checkout_cost_arr,"stripe_cost_arr":stripe_cost_arr,
"profit_two_arr":profit_two_arr,"profit_stripe_arr":profit_stripe_arr})
print("Selling price is:",selling_price)
px.histogram(df,x="profit_two_arr",marginal='box').show()
px.histogram(df,x="prior_arr",marginal='box').show()
px.histogram(df,x="posterior_arr",marginal='box').show()
px.histogram(df,x="ali_cost_arr",marginal='box').show()
round(df,3)
np.mean(conversion)/np.mean(reach)
beta=np.random.beta(np.mean(conversion),(np.mean(reach)-np.mean(conversion)),size=200)
binom=np.random.binomial(np.mean(reach),beta,size=200)
px.histogram(x=binom,marginal='box').show()
#worst case
size=10000
#facebook
facebook_budget=15*4
conversion=[21]
reach=[1600]
#ecommerce
ali_price=12.35
shipping=0
selling_price=(ali_price+shipping)+(ali_price+shipping)*1.4
#payment_gate
two_checkout=(selling_price+shipping)*0.035+0.35
stripe=(selling_price+shipping)*0.029+0.3
#arrays
prior_arr=np.empty(size)
posterior_arr=np.empty(size)
ecom_revenu_arr=np.empty(size)
ali_cost_arr=np.empty(size)
two_checkout_cost_arr=np.empty(size)
stripe_cost_arr=np.empty(size)
profit_two_arr=np.empty(size)
profit_stripe_arr=np.empty(size)
for i in range(size):
prior=np.random.beta(np.mean(conversion),(np.mean(reach)-np.mean(conversion)))
posterior=np.random.binomial(np.mean(reach),prior)
ecom_revenu=selling_price*posterior
ali_cost=(ali_price+shipping)*posterior
two_checkout_cost=two_checkout*posterior
stripe_cost=stripe*posterior
profit_two=ecom_revenu-ali_cost-two_checkout_cost-facebook_budget
profit_stripe=ecom_revenu-ali_cost-stripe_cost-facebook_budget
prior_arr[i]=prior
posterior_arr[i]=posterior
ecom_revenu_arr[i]=ecom_revenu
ali_cost_arr[i]=ali_cost
two_checkout_cost_arr[i]=two_checkout_cost
stripe_cost_arr[i]=stripe_cost
profit_two_arr[i]=profit_two
profit_stripe_arr[i]=profit_stripe
df=pd.DataFrame(data={"prior_arr":prior_arr,"posterior_arr":posterior_arr,"ecom_revenu_arr":ecom_revenu_arr,
"ali_cost_arr":ali_cost_arr,"two_checkout_cost_arr":two_checkout_cost_arr,"stripe_cost_arr":stripe_cost_arr,
"profit_two_arr":profit_two_arr,"profit_stripe_arr":profit_stripe_arr})
print("Selling price is:",selling_price)
px.histogram(df,x="profit_two_arr",marginal='box',color_discrete_sequence=["#63fa95"]).show()
px.histogram(df,x="prior_arr",marginal='box',color_discrete_sequence=["#63fa95"]).show()
px.histogram(df,x="posterior_arr",marginal='box',color_discrete_sequence=["#63fa95"]).show()
px.histogram(df,x="ali_cost_arr",marginal='box',color_discrete_sequence=["#63fa95"]).show()
#worst case
size=10000
#facebook
facebook_budget=15*4
conversion=[21]
reach=[1600]
#ecommerce
ali_price=12.35
shipping=0
selling_price=(ali_price+shipping)+(ali_price+shipping)*0.5
#payment_gate
two_checkout=(selling_price+shipping)*0.035+0.35
stripe=(selling_price+shipping)*0.029+0.3
#arrays
prior_arr=np.empty(size)
posterior_arr=np.empty(size)
ecom_revenu_arr=np.empty(size)
ali_cost_arr=np.empty(size)
two_checkout_cost_arr=np.empty(size)
stripe_cost_arr=np.empty(size)
profit_two_arr=np.empty(size)
profit_stripe_arr=np.empty(size)
for i in range(size):
prior=np.random.beta(np.mean(conversion),(np.mean(reach)-np.mean(conversion)))
posterior=np.random.binomial(np.mean(reach),prior)
ecom_revenu=selling_price*posterior
ali_cost=(ali_price+shipping)*posterior
two_checkout_cost=two_checkout*posterior
stripe_cost=stripe*posterior
profit_two=ecom_revenu-ali_cost-two_checkout_cost-facebook_budget
profit_stripe=ecom_revenu-ali_cost-stripe_cost-facebook_budget
prior_arr[i]=prior
posterior_arr[i]=posterior
ecom_revenu_arr[i]=ecom_revenu
ali_cost_arr[i]=ali_cost
two_checkout_cost_arr[i]=two_checkout_cost
stripe_cost_arr[i]=stripe_cost
profit_two_arr[i]=profit_two
profit_stripe_arr[i]=profit_stripe
df=pd.DataFrame(data={"prior_arr":prior_arr,"posterior_arr":posterior_arr,"ecom_revenu_arr":ecom_revenu_arr,
"ali_cost_arr":ali_cost_arr,"two_checkout_cost_arr":two_checkout_cost_arr,"stripe_cost_arr":stripe_cost_arr,
"profit_two_arr":profit_two_arr,"profit_stripe_arr":profit_stripe_arr})
print("Selling price is:",selling_price)
px.histogram(df,x="profit_two_arr",marginal='box',color_discrete_sequence=["#fa6363"]).show()
px.histogram(df,x="prior_arr",marginal='box',color_discrete_sequence=["#fa6363"]).show()
px.histogram(df,x="posterior_arr",marginal='box',color_discrete_sequence=["#fa6363"]).show()
px.histogram(df,x="ali_cost_arr",marginal='box',color_discrete_sequence=["#fa6363"]).show()